#pragma once
#ifndef HostMemPool_hpp
#define HostMemPool_hpp

#include"./BufferPoolInterface.hpp"

namespace MMF
{


    class MMFHostMemPool: public MMFBufferPoolInterface
    {

        void* mBuffer;
        uint64_t mSize;

    public:

        MMFHostMemPool(){}
        MMFHostMemPool(uint64_t blockSize, uint64_t blockNum);
        MMFHostMemPool(MMFHostMemPool&& that);
        MMFHostMemPool& operator=(MMFHostMemPool&& that);
        ~MMFHostMemPool();

        virtual void* Allocate() override;
        virtual void Deallocate() override;
        virtual uint64_t Bytes() override;
        virtual MMFBufferPoolType Type() override;
    };
}

#endif